לאחר מבט קצר בפרוייקטים שעשיתי , גיליתי שקובץ הCSS שלי מלא במחלקות וIDים שאין בהם שימוש בפועל .
ולכן החלטתי לכתוב קוד שיסנן לי את המחלקות וIDים וימחוק את האלו שלא בשימוש .
בפעולת החילוץ של המחלקות והIDים מהHTML הצלחתי . אך במעבר על הקובץ CSS התוצאות היו לא חד משמעיות כלומר חלק מהמחלקות שקיבלתי מהמערך שלי (קוד בהמשך) נמצאו , וחלק שקיימים במערך אך לא נמצאו בקובץ הCSS (למרות שבפועל הם שם) .
הקוד שלי :
$HtmlFile=file_get_contents("index.php");
$CssFile = file_get_contents("style.css");
preg_match_all("#<[^>]+ class=\"(.*?)\".*>#ixm", $HtmlFile, $class);
preg_match_all("#<[^>]+ id=\"(.*?)\".*>#ixm", $HtmlFile, $id);
$ClassName = array_unique($class[1]);
$IdName = array_unique($id[1]);
unset($id);
unset($class);
foreach($ClassName as $class)
{
$pattern = '/'.($class).'(\s){0,1}{(([a-zA-Z0-9:;#%\(\)\'\-])*\s*)*}/m';
$found = preg_match_all($pattern, $CssFile, $matches);
if($matches[0])
{
$key = array_keys($ClassName,$class);
unset($ClassName[$key[0]]);
echo "<b>Result (class) : </b>".$matches[0][0]."<br />";
}else echo "no result for class name \"<b>".$class."</b>\".<br />";
}
echo "<hr>";
foreach($IdName as $id)
{
$pattern = '/'.($id).'(\s){0,1}{(([a-zA-Z0-9:;#%\(\)\'\-])*\s*)*}/m';
$found = preg_match_all($pattern, $CssFile, $matches);
if($matches[0])
{
$key = array_keys($IdName,$id);
unset($IdName[$key[0]]);
echo "<b>Result (id) : </b>".$matches[0][0]."<br />";
}else echo "no result for id name \"<b>".$id."</b>\".<br />";
}
var_dump($ClassName);
?>
המטרה בסופו של דבר היא לסנן מהמערך הראשוני שמחיל את כל המחלקות והIDים שקיבלתי בהתחלה , ואם נמצא להוציא אותו מהמערך ובסופו של דבר אני אשאר עם מערך מצומצם שהערכים בתוכו הם ערכים שלא נמצאים בCSS .
מקווה שאני ברור .
אשמח לעזרה .
האבטחה ו\או זמן הריצה של הקוד לא כ"כ משנים לי ומהווים בעיה כי הוא לשימוש עצמי בשרת הפרטי .
תודה
עריכה : מצאתי ברשת את המחלקה הזו : https://www.gosquared.com/blog/archives/164 והיא לא עובדת לי . זה מפיל לי את השרת ...
3 תשובות
לאחר חיפוש באינטרנט , הבנתי שלא תריך להמציא את הגלגל .
מצאתי תוסף לFF שבודק מה בשימוש ומה לא וגם מציע להוריד את הCSS הנקי .
מומלץ לעשות בכל כמה זמן בדיקה כזו , רק לא לשכוח להוריד מהקוד את הקישור לCSS של הפריימוורק עיצוב שלכם ;)
כמובן כדי שלא יתנקה לגמרי ...
צרף לי בבקשה קישור לתוסף. הגיעה הזמן לעשות נקיון לפסח :)
אגב, מתוך סקרנות, אתה כנראה יכול להעיף מבט בקוד מקור של התוסף ולראות איך הוא עובד.
הקישור : https://addons.mozilla.org/en-US/firefox/addon/css-usage
יש לציין שזה תוסף לFirebug שבFF .
למי שאין Firebug מומלץ להוריד מהאתר של מוזילה - חובה לכל מתכנת \ אחד שמתעסק עם CSS - HTML .
תיקון מתגובה קודמת : זה מציג לך כל קובץ CSS שהמחלקות שלו לא ממומשות בנפרד , כלומר אין צורך להוריד את הפריימוורק עיצוב מהאתר באופן זמני . סליחה על הטעות .
@intval
בכיף היתי מסתכל אבל אין לי מושג איפה ... :)
כתיבה וחתימה טובה.